This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

plot(cars)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The UMass Hoops Message board represents the collective inner psyche of the UMass sports fan. It is where the most dedicated, loyal, tormented fans of the UMass Basketball program go to express frustrations, comiserate, stoke each other’s unrealistic expectations, lather themselves into a frenzy, and very occasionally celebrate. I thought it might be interesting to better understand how and when people have used the platform since it began, through a few ups and many downs.

Shall we take a look?

require(plotly)
Loading required package: plotly
package 㤼㸱plotly㤼㸲 was built under R version 3.6.3Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio

Attaching package: 㤼㸱plotly㤼㸲

The following object is masked from 㤼㸱package:ggplot2㤼㸲:

    last_plot

The following object is masked from 㤼㸱package:stats㤼㸲:

    filter

The following object is masked from 㤼㸱package:graphics㤼㸲:

    layout

Taking a look at when this all began we can see that it started as a trickle in 2003 and gained steam through our our NCAA tournament appearance in the 2013-2014 season. No surprise, but activity is largely condensed to the months of the year when the season is active, from November through March. After the exciting season where Derek Kellogg’s Minutemen got off to a hot start and did just enough to tailspin their way to an NCAA tournament first round spanking at the hands of Tennessee, monthly volume fell back to 2010 levels, peaking at < 3k posts per month in the 2014-15 season.

p.volume <- plot_ly(posts.df, x = ~format(as.Date(PostDateTime), "%Y-%m")) %>%
  add_histogram() %>%
  layout(title = "UMass Hoops Message Board Posts per Month", yaxis = list(title="", tickformat=",d", gridcolor = "#bbb"), xaxis = list(title="Year-Month"))
p.volume
Ignoring 574 observationsIgnoring 574 observations

Monthly post volumes are a decent way to gauge interest in the program from year to year, but looking at the number of unique individuals that are participating also helps us understand the spread of interest each year. While we still see that the 2013-14 season has the largest number of users, it’s not wildly higher than some of the first years of the message board. During that high water mark, we see there there are >250 unique users that are making posts in a given month. But we see unique monhtly posters north of 200 in a number of other seasons: 2004-05, 2007-08, 2011-12, and 2012-13. In other words, in the “up” years of the program we are seeing more engaged users, but it seems as though much of the difference in total post volume we saw previously is driven by an increase in posts per user rather than just a jump in net new users.

p.uniqueposters <- plot_ly(unique.posters, x = ~YrMon, y = ~UniquePosters, type = "bar") %>%
  layout(title = "Unique Posters Per Month", yaxis = list(title="", tickformat=",d", gridcolor = "#bbb"), xaxis = list(title="Year-Month"))
p.uniqueposters
Ignoring 1 observationsIgnoring 1 observations
p.AvgPostsPerUser <- plot_ly(posts.per.poster, x = ~YrMon, y = ~AvgPPU, type = "bar") %>%
  layout(title = "Average # of Posts Made by Active Posters Each Month", yaxis = list(title="", tickformat=",d", gridcolor = "#bbb"), xaxis = list(title="Year-Month"))
p.AvgPostsPerUser
Ignoring 1 observationsIgnoring 1 observations
LS0tDQp0aXRsZTogIlVNYXNzIEJhc2tldGJhbGwgTWVzc2FnZSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIA0KDQpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ3RybCtTaGlmdCtFbnRlciouIA0KDQpgYGB7cn0NCnBsb3QoY2FycykNCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQoNClRoZSBVTWFzcyBIb29wcyBNZXNzYWdlIGJvYXJkIHJlcHJlc2VudHMgdGhlIGNvbGxlY3RpdmUgaW5uZXIgcHN5Y2hlIG9mIHRoZSBVTWFzcyBzcG9ydHMgZmFuLiBJdCBpcyB3aGVyZSB0aGUgbW9zdCBkZWRpY2F0ZWQsIGxveWFsLCB0b3JtZW50ZWQgZmFucyBvZiB0aGUgVU1hc3MgQmFza2V0YmFsbCBwcm9ncmFtIGdvIHRvIGV4cHJlc3MgZnJ1c3RyYXRpb25zLCBjb21pc2VyYXRlLCBzdG9rZSBlYWNoIG90aGVyJ3MgdW5yZWFsaXN0aWMgZXhwZWN0YXRpb25zLCBsYXRoZXIgdGhlbXNlbHZlcyBpbnRvIGEgZnJlbnp5LCBhbmQgdmVyeSBvY2Nhc2lvbmFsbHkgY2VsZWJyYXRlLiBJIHRob3VnaHQgaXQgbWlnaHQgYmUgaW50ZXJlc3RpbmcgdG8gYmV0dGVyIHVuZGVyc3RhbmQgaG93IGFuZCB3aGVuIHBlb3BsZSBoYXZlIHVzZWQgdGhlIHBsYXRmb3JtIHNpbmNlIGl0IGJlZ2FuLCB0aHJvdWdoIGEgZmV3IHVwcyBhbmQgbWFueSBkb3ducy4NCg0KU2hhbGwgd2UgdGFrZSBhIGxvb2s/DQoNCmBgYHtyfQ0KIyMgbG9hZCBpbiB0aGUgcGFja2FnZXMgbmVlZGVkDQpyZXF1aXJlKHRpZHlyKQ0KcmVxdWlyZShkcGx5cikNCnJlcXVpcmUoZ2dwbG90MikNCnJlcXVpcmUobHVicmlkYXRlKQ0KcmVxdWlyZShwbG90bHkpDQoNCiMjU2V0IHRoZSBkYXRhIGRpcmVjdG9yeQ0KZGF0YS5kaXIgPC0gcGFzdGUwKGdldHdkKCksICIvSG9vcCBCb2FyZCBEYXRhLyIpDQoNCiMjIGxvYWQgaW4gdGhlIG1lc3NhZ2UgYm9hcmQgcG9zdHMgbm93IHRoYXQgdGhleSBoYXZlIGJlZW4gc2NyYXBlZCAgDQpwb3N0cy5kZiA8LSByZWFkLmNzdihwYXN0ZTAoZGF0YS5kaXIsICJIb29wcyBCb2FyZCBQb3N0cy5jc3YiKSwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQ0KDQojIyBjb252ZXJ0IHRoZSBEYXRlVGltZSB2YXJpYWJsZSB0byBhbiBhY3R1YWwgZGF0ZSB0aW1lDQpwb3N0cy5kZiRQb3N0RGF0ZVRpbWUgPC0gYXMuUE9TSVhjdChwb3N0cy5kZiREYXRlVGltZSkNCmhlYWQocG9zdHMuZGZbLCBjKCJEYXRlVGltZSIsICJQb3N0RGF0ZVRpbWUiKV0pDQoNCiMjIGdldCByaWdodCBvZiB0aGUgY2hhcmFjdGVyIHZlcnNpb24NCnBvc3RzLmRmJERhdGVUaW1lIDwtIE5VTEwNCmBgYA0KDQpUYWtpbmcgYSBsb29rIGF0IHdoZW4gdGhpcyBhbGwgYmVnYW4gd2UgY2FuIHNlZSB0aGF0IGl0IHN0YXJ0ZWQgYXMgYSB0cmlja2xlIGluIDIwMDMgYW5kIGdhaW5lZCBzdGVhbSB0aHJvdWdoIG91ciBvdXIgTkNBQSB0b3VybmFtZW50IGFwcGVhcmFuY2UgaW4gdGhlIDIwMTMtMjAxNCBzZWFzb24uIE5vIHN1cnByaXNlLCBidXQgYWN0aXZpdHkgaXMgbGFyZ2VseSBjb25kZW5zZWQgdG8gdGhlIG1vbnRocyBvZiB0aGUgeWVhciB3aGVuIHRoZSBzZWFzb24gaXMgYWN0aXZlLCBmcm9tIE5vdmVtYmVyIHRocm91Z2ggTWFyY2guIEFmdGVyIHRoZSBleGNpdGluZyBzZWFzb24gd2hlcmUgRGVyZWsgS2VsbG9nZydzIE1pbnV0ZW1lbiBnb3Qgb2ZmIHRvIGEgaG90IHN0YXJ0IGFuZCBkaWQganVzdCBlbm91Z2ggdG8gdGFpbHNwaW4gdGhlaXIgd2F5IHRvIGFuIE5DQUEgdG91cm5hbWVudCBmaXJzdCByb3VuZCBzcGFua2luZyBhdCB0aGUgaGFuZHMgb2YgVGVubmVzc2VlLCBtb250aGx5IHZvbHVtZSBmZWxsIGJhY2sgdG8gMjAxMCBsZXZlbHMsIHBlYWtpbmcgYXQgPCAzayBwb3N0cyBwZXIgbW9udGggaW4gdGhlIDIwMTQtMTUgc2Vhc29uLg0KDQpgYGB7cn0NCg0KIyMgUGxvdCB0aGUgbnVtYmVyIG9mIHBvc3RzIHBlciBtb250aA0KcC52b2x1bWUgPC0gcGxvdF9seShwb3N0cy5kZiwgeCA9IH5mb3JtYXQoYXMuRGF0ZShQb3N0RGF0ZVRpbWUpLCAiJVktJW0iKSkgJT4lDQogIGFkZF9oaXN0b2dyYW0oKSAlPiUNCiAgbGF5b3V0KHRpdGxlID0gIlVNYXNzIEhvb3BzIE1lc3NhZ2UgQm9hcmQgUG9zdHMgcGVyIE1vbnRoIiwgeWF4aXMgPSBsaXN0KHRpdGxlPSIiLCB0aWNrZm9ybWF0PSIsZCIsIGdyaWRjb2xvciA9ICIjYmJiIiksIHhheGlzID0gbGlzdCh0aXRsZT0iWWVhci1Nb250aCIpKQ0KcC52b2x1bWUNCg0KYGBgDQoNCk1vbnRobHkgcG9zdCB2b2x1bWVzIGFyZSBhIGRlY2VudCB3YXkgdG8gZ2F1Z2UgaW50ZXJlc3QgaW4gdGhlIHByb2dyYW0gZnJvbSB5ZWFyIHRvIHllYXIsIGJ1dCBsb29raW5nIGF0IHRoZSBudW1iZXIgb2YgdW5pcXVlIGluZGl2aWR1YWxzIHRoYXQgYXJlIHBhcnRpY2lwYXRpbmcgYWxzbyBoZWxwcyB1cyB1bmRlcnN0YW5kIHRoZSBzcHJlYWQgb2YgaW50ZXJlc3QgZWFjaCB5ZWFyLiBXaGlsZSB3ZSBzdGlsbCBzZWUgdGhhdCB0aGUgMjAxMy0xNCBzZWFzb24gaGFzIHRoZSBsYXJnZXN0IG51bWJlciBvZiB1c2VycywgaXQncyBub3Qgd2lsZGx5IGhpZ2hlciB0aGFuIHNvbWUgb2YgdGhlIGZpcnN0IHllYXJzIG9mIHRoZSBtZXNzYWdlIGJvYXJkLiBEdXJpbmcgdGhhdCBoaWdoIHdhdGVyIG1hcmssIHdlIHNlZSB0aGVyZSB0aGVyZSBhcmUgPjI1MCB1bmlxdWUgdXNlcnMgdGhhdCBhcmUgbWFraW5nIHBvc3RzIGluIGEgZ2l2ZW4gbW9udGguIEJ1dCB3ZSBzZWUgdW5pcXVlIG1vbmh0bHkgcG9zdGVycyBub3J0aCBvZiAyMDAgaW4gYSBudW1iZXIgb2Ygb3RoZXIgc2Vhc29uczogMjAwNC0wNSwgMjAwNy0wOCwgMjAxMS0xMiwgYW5kIDIwMTItMTMuIEluIG90aGVyIHdvcmRzLCBpbiB0aGUgInVwIiB5ZWFycyBvZiB0aGUgcHJvZ3JhbSB3ZSBhcmUgc2VlaW5nIG1vcmUgZW5nYWdlZCB1c2VycywgYnV0IGl0IHNlZW1zIGFzIHRob3VnaCBtdWNoIG9mIHRoZSBkaWZmZXJlbmNlIGluIHRvdGFsIHBvc3Qgdm9sdW1lIHdlIHNhdyBwcmV2aW91c2x5IGlzIGRyaXZlbiBieSBhbiBpbmNyZWFzZSBpbiBwb3N0cyBwZXIgdXNlciByYXRoZXIgdGhhbiBqdXN0IGEganVtcCBpbiBuZXQgbmV3IHVzZXJzLiAgIA0KDQpgYGB7cn0NCg0KIyMgSG93IG1hbnkgdW5pcXVlIHBvc3RlcnMgZG8gd2Ugc2VlIG92ZXIgdGltZT8NCnVuaXF1ZS5wb3N0ZXJzIDwtICBwb3N0cy5kZiAlPiUNCiAgbXV0YXRlKFlyTW9uID0gZm9ybWF0KGFzLkRhdGUoUG9zdERhdGVUaW1lKSwgIiVZLSVtIikpICU+JQ0KICBncm91cF9ieShZck1vbikgJT4lDQogIHN1bW1hcml6ZShVbmlxdWVQb3N0ZXJzID0gbl9kaXN0aW5jdChwb3N0ZXIpKQ0KDQpoZWFkKHVuaXF1ZS5wb3N0ZXJzKQ0KDQpwLnVuaXF1ZXBvc3RlcnMgPC0gcGxvdF9seSh1bmlxdWUucG9zdGVycywgeCA9IH5Zck1vbiwgeSA9IH5VbmlxdWVQb3N0ZXJzLCB0eXBlID0gImJhciIpICU+JQ0KICBsYXlvdXQodGl0bGUgPSAiVW5pcXVlIFBvc3RlcnMgUGVyIE1vbnRoIiwgeWF4aXMgPSBsaXN0KHRpdGxlPSIiLCB0aWNrZm9ybWF0PSIsZCIsIGdyaWRjb2xvciA9ICIjYmJiIiksIHhheGlzID0gbGlzdCh0aXRsZT0iWWVhci1Nb250aCIpKQ0KcC51bmlxdWVwb3N0ZXJzDQoNCmBgYA0KDQpgYGB7cn0NCg0KIyMgSG93IG1hbnkgcG9zdHMgcGVyIGFjdGl2ZSB1c2VyIGRvIHdlIHNlZSBvdmVyIHRpbWU/DQpwb3N0cy5wZXIucG9zdGVyIDwtICBwb3N0cy5kZiAlPiUNCiAgbXV0YXRlKFlyTW9uID0gZm9ybWF0KGFzLkRhdGUoUG9zdERhdGVUaW1lKSwgIiVZLSVtIikpICU+JQ0KICBncm91cF9ieShZck1vbiwgcG9zdGVyKSAlPiUNCiAgc3VtbWFyaXplKFBvc3RWb2x1bWUgPSBuKCkpICU+JQ0KICBncm91cF9ieShZck1vbikgJT4lDQogIHN1bW1hcml6ZShBdmdQUFUgPSBtZWFuKFBvc3RWb2x1bWUpKQ0KDQpoZWFkKHBvc3RzLnBlci5wb3N0ZXIpDQoNCnAuQXZnUG9zdHNQZXJVc2VyIDwtIHBsb3RfbHkocG9zdHMucGVyLnBvc3RlciwgeCA9IH5Zck1vbiwgeSA9IH5BdmdQUFUsIHR5cGUgPSAiYmFyIikgJT4lDQogIGxheW91dCh0aXRsZSA9ICJBdmVyYWdlICMgb2YgUG9zdHMgTWFkZSBieSBBY3RpdmUgUG9zdGVycyBFYWNoIE1vbnRoIiwgeWF4aXMgPSBsaXN0KHRpdGxlPSIiLCB0aWNrZm9ybWF0PSIsZCIsIGdyaWRjb2xvciA9ICIjYmJiIiksIHhheGlzID0gbGlzdCh0aXRsZT0iWWVhci1Nb250aCIpKQ0KcC5BdmdQb3N0c1BlclVzZXINCg0KYGBgDQoNCg==